package com.itheima.Util;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

@Slf4j
public class OssUitl {
    public static String getUrl(MultipartFile file){
        // 阿里云OSS访问路径(杭州区)
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // 填写Bucket名称，例如test-sunming84。
        String bucketName = "test-sunming84";
        // 创建OSSClient实例。需要把访问秘钥传进去
        OSS ossClient = new OSSClientBuilder().build(endpoint,
                "LTAI5tAt12QccqGrbwycuApF",
                "hPDIqm5HDgteciFlydHZhzd9wr3aZK");

        // 获取实际上传文件名
        log.info("originalName:{}", file.getOriginalFilename());
        String name = file.getOriginalFilename();
        // 根据实际文件名获取文件后缀名
        int i = name.lastIndexOf(".");
        String suffix = name.substring(i);
        log.info("文件后缀:{}", suffix);
        // 根据文件后缀和生成的UUID拼接成完整的且不重复的文件名
        String uuid = java.util.UUID.randomUUID().toString();
        // 填写Object完整路径，完整路径中不能包含Bucket名称，例如exampledir/exampleobject.txt。
        String objectName = uuid+suffix;
        log.info("文件名:{}", objectName);

        // 转移文件到阿里云OSS
        try {
            // 调用方法上传文件
            ossClient.putObject(bucketName, objectName, file.getInputStream());
            // 拼接上传文件的下载链接
            String url = "https://" + bucketName + "." + "oss-cn-hangzhou.aliyuncs.com/" + objectName;
            return url;
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }
}
